package com.agent.generator.service;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件存储服务
 * @author Jeff_Wan
 * @description 封装文件存储操作
 */
@Service
@RequiredArgsConstructor
public class FileStorageService {
    private final CloudflareStorageService cloudflareStorageService;

    /**
     * 存储文件
     * @param file 上传的文件
     * @param userId 用户ID
     * @param fileType 文件类型(input/output)
     * @return 文件存储路径 (S3 key)
     */
    public String storeFile(MultipartFile file, Long userId, String fileType) {
        return cloudflareStorageService.storeFile(file, userId, fileType);
    }

    /**
     * 下载并存储远程文件
     * @param fileUrl 远程文件URL
     * @param userId 用户ID
     * @param fileType 文件类型
     * @param fileName 原始文件名
     * @return 文件存储路径 (S3 key)
     */
    public String downloadAndStoreFile(String fileUrl, Long userId, String fileType, String fileName) {
        return cloudflareStorageService.downloadAndStoreFile(fileUrl, userId, fileType, fileName);
    }

    /**
     * 生成文件访问URL
     * @param objectKey 文件存储路径
     * @return 可访问的URL
     */
    public String generateFileUrl(String objectKey) {
        return cloudflareStorageService.generateFileUrl(objectKey);
    }
}